/*
 * ManejadorInstrucciones.h
 *
 *  Created on: 10/09/2010
 *      Author: julfc
 */

#ifndef MANEJADORINSTRUCCIONES_H_
#define MANEJADORINSTRUCCIONES_H_

#include <string>
#include <qtextedit.h>
#include <qstring.h>
#include "Parser.h"
#include "ManejadorConfiguracion.h"
#include "../initialImport/ImportadorMails.h"
#include "CriterioBusqueda.h"
#include "../clases/Mail.h"
#include "../bsharptree/ArbolBSharpString.h"
#include "../bsharptree/ArbolBSharpStringLong.h"
#include "../moduloAlmacenamiento/ManejadorArchivoClasificacion.h"

/*
 * ORIGEN = 1
 * DESTINO = 2
 * ASUNTO = 3
 * FECHA = 4
 * */

class ManejadorInstrucciones {

public:
	vector<long> BuscarIUC(CriterioBusqueda criterio);
	vector<long> BuscarInterno(CriterioBusqueda criterio, string username);
	vector<long> InterseccionResultados(vector<long> lista1, vector<long> lista2);
	ManejadorInstrucciones();
	bool almacenamiento(QTextEdit *bigEditor);
	QString derivarCreacionIndices(QString indices);
	bool AgregarClasificacion(int filtro, string username);
	bool AgregarSeleccion(int filtro, string valor, string username);
	QString derivarBusquedas(QString filtros);
	bool buscar(vector<CriterioBusqueda> criterios, string username, QString &output);
	void MostrarMail(long id, QString &output);
	void eliminarClasificacion();
	bool EliminarMail(long id);
	vector<ModeloDocumento> buscarTermino(vector<string> terminos);
	vector<ModeloDocumento> buscarFrase(vector<PalabraPos> terminos);
	void MostrarDiccionario(QString &output);
	virtual ~ManejadorInstrucciones();
};

#endif /* MANEJADORINSTRUCCIONES_H_ */
